$├867 ┌ERO ─╒╨╙╘ [$4├╞┴], THE STARTING SECTOR AT WHICH DUPLICATION WILL BEGIN.
$├86├ ╩╙╥ ─╒╨╚┴╞ [$├872] TO DUPLICATE HALF THE TRACK (THE EVEN SECTORS) BY STARTING AT ─╒╨╙╘ AND PROCESSING SECTORS BY INCREMENTS OF 2.
$├86╞ ╔NCREMENT ─╒╨╙╘ [$4├╞┴] TO $01 TO PICK UP THE ODD SECTORS AND FALL THROUGH TO ─╒╨╚┴╞ [$├872] TO DUPLICATE THE OTHER HALF OF THE TRACK.
─╒╨╚┴╞ - ─UPLICATE HALF A TRACK
$├872 ╩╙╥ ─╒╨╔╬╔ [$├8╞2] TO INITIALIZE THE START SECTOR AND BUFFER.
$├875 ─╚1 ╩╙╥ ─╒╨╙┼╘ [$├8╞┼] TO SET UP TO READ THE CURRENT SECTOR.
$├878 ╩╙╥ ─╒╨╚─╥ [$├977] TO BUILD THE HEADER IMAGE, READ IT, AND WAIT FOR THE DATA BLOCK.
$├87┬ ╩╙╥ ╥─╟├╥ [$╞400] TO READ THE ╟├╥ IMAGE OF THE DATA BLOCK.
$├87┼ ╩╙╥ ─╒╨╬╪╘ [$├982] TO INCREMENT CONTROLS TO THE NEXT SECTOR TO BE READ.
$├881 ╔F THERE ARE MORE SECTORS TO PROCESS (THE .├ FLAG WILL BE CLEAR) THEN BRANCH BACK TO ─╚1.
$├883 ╩╙╥ ─╒╨╔╬╔ [$├8╞2] TO INITIALIZE CONTROLS FOR THE FIRST BLOCK.
$├886 ╩╙╥ ─╒╨╙┼╘ [$├8╞┼] TO SET POINTERS TO PROCESS THE DATA BLOCK FOR THE CURRENT SECTOR.
╬OTE: ┬EFORE THE DATA IS COPIED, WE WANT TO ENSURE IT IS CORRECT BY CHECKING THE HEADER ╔─ AND THE DATA CHECKSUM. ┬EFORE THESE CHECKS CAN BE PERFORMED, THE DATA MUST BE CONVERTED FROM ╟├╥ TO BINARY AND TO DO THIS CONVERSION, THE DATA MUST BE PLACED IN THE CORRECT AREAS SO THE INTERNAL CONVERSION ROUTINE CAN BE USED.
$├889 ╘RANSFER THE DATA OVERFLOW BYTES USING .┘ AS THE INDEX FROM $┬┴ TO $╞╞ INCLUSIVE, FROM THE AREA (╧╓╥╨╬╘),┘ [($75),┘] TO THE USUAL OVERFLOW BUFFER AT ╧╓╥┬╒╞,┘ [$4╞00,┘].
$├893 ╙ET ╟├╥╞╠╟ [$4┼┬1] TO $01 TO INDICATE DATA IS IN ╟├╥ FORM AND THEN ╩╙╥ ╟├╥┬╔╬ [$╞├87] TO CONVERT THE DATA TO BINARY.
$├89┬ ╠OAD .┴ WITH ┬╔─ [$4┼┴1] AND MAKE SURE IT IS VALID BY COMPARING IT TO ─┬╔─ [$4┼┴├]. ╔F THEY ARE EQUAL, EVERYTHING IS FINE SO BRANCH TO ─╚3.
$├8┴3 ╠OAD .┴ WITH $04 (─┴╘┴ ┬╠╧├╦ ╬╧╘ ╞╧╒╬─) AND EXIT WITH A BRANCH TO ─╚8.
$├8┴7 ─╚3 ╩╙╥ ├╚╦┬╠╦ [$╞52┴] TO CALCULATE THE DATA BLOCK CHECKSUM.
$├8┴┴ ╔F THE COMPUTED CHECKSUM (RETURNED IN .┴) IS THE SAME AS ├╚╦╙╒═ [$4┼┴3] (FROM THE DATA BLOCK) THEN BRANCH TO ─╚4 TO CONTINUE.
$├8┴╞ ╠OAD .┴ WITH $05 (─┴╘┴ ┬╠╧├╦ ├╚┼├╦╙╒═ ┼╥╥╧╥) AND EXIT WITH A BRANCH TO ─╚8.
$├8┬3 ─╚4 ╩╙╥ ─╒╨╬╪╘ [$├982] TO ADVANCE TO THE NEXT DATA BLOCK.
$├8┬6 ╔F NOT FINISHED, LOOP BACK TO ─╚2.
║FP
╬OTE: ╙INCE THE DATA HAS BEEN CONVERTED FROM ╟├╥ TO BINARY, IT IS JUST READ BACK IN FROM THE DISK RATHER THAN RE-CONVERTING IT TO ╟├╥.
$├8┬8 ╩╙╥ ─╒╨╔╬╔ [$├8╞2] TO INITIALIZE CONTROLS FOR THE START BLOCK.
$├8┬┬ ─╚5 ╩╙╥ ─╒╨╙┼╘ [$├8╞┼] TO SET CONTROLS FOR READING THE DATA.
$├8┬┼ ╩╙╥ ─╒╨╥─ [$├940] TO READ THE DATA.
$├8├1 ╩╙╥ ─╒╨╬╪╘ [$├982] TO ADVANCE TO THE NEXT BLOCK.
$├8├4 ╔F THERE ARE MORE BLOCKS TO READ THEN LOOP BACK TO ─╚5.
╬OTE: ╬OW COPY THIS DATA TO THE OTHER DRIVE.
$├8├6 ╩╙╥ ╙╫╔─╥╓ [$├85┼] TO SWITCH TO THE DESTINATION DRIVE.
$├8├9 ╩╙╥ ─╒╨╔╬╔ [$├8╞2] TO INITIALIZE CONTROLS FOR THE START BLOCK.
$├8├├ ─╚6 ╩╙╥ ─╒╨╙┼╘ [$├8╞┼] TO SET CONTROLS FOR READING THE DATA.
$├8├╞ ╩╙╥ ╫╥╘┬╒╞ [$╞4─├] TO OUTPUT THE DATA.
$├8─2 ╔F THERE WAS AN ERROR THEN BRANCH TO ─╚8.
$├8─4 ╩╙╥ ─╒╨╬╪╘ [$├982] TO ADVANCE TO THE NEXT BLOCK.
$├8─7 ╔F THERE ARE MORE BLOCKS TO PROCESS THEN LOOP BACK TO ─╚6.
╬OTE: ╬OW REPROCESS AGAIN, THIS TIME PERFORMING A VERIFY TO ENSURE THE DATA WAS WRITTEN CORRECTLY.
$├8─9 ╩╙╥ ─╒╨╔╬╔ [$├8╞2] TO SET CONTROLS FOR THE START BLOCK.
$├8─├ ╩╙╥ ╥┼┴─╧╬ [$╞┼1┴] TO READ THE DISK.
$├8─╞ ─╚7 ╩╙╥ ─╒╨╙┼╘ [$├8╞┼] TO SET CONTROLS FOR READING THE DATA.
$├8┼2 ╩╙╥ ─╒╨╚─╥ [$├977] TO READ THE HEADER AND WAIT FOR THE DATA BLOCK.
$├8┼5 ╩╙╥ ╓╥╞┬╒╞ [$╞5╞5] TO VERIFY THE DATA.
$├8┼8 ─╚8 ╔F THERE WAS AN ERROR THEN EXIT WITH A BRANCH TO ─╒╨┼╥╥ [$├95─].
$├8┼┴ ╩╙╥ ─╒╨╬╪╘ [$├982] TO ADVANCE TO THE NEXT BLOCK.
$├8┼─ ╔F THERE ARE MORE BLOCKS THEN LOOP BACK TO ─╚7.
$├8┼╞ ┼XIT WITH A JUMP TO ╙╫╔─╥╓ [$├85┼] TO SWITCH BACK TO THE SOURCE DRIVE.
─╒╨╔╬╔ ╙ET UP CONTROLS FOR PROCESSING START BLOCK
$├8╞2 ├OPY ─╒╨╙╘ [$4├╞┴], THE STARTING SECTOR, TO ─╒╨╙┼├ [$4├╞8], THE CURRENT SECTOR.
$├8╞8 ╙ET ─╒╨┬╒╞ [$4├╞9], THE BUFFER NUMBER TO BE USED, TO ZERO.
$├8╞─ ╥ETURN.
─╒╨╙┼╘ ╙ET UP CONTROLS FOR READ/WRITE OF CURRENT SECTOR
$├8╞┼ ├OPY THE CURRENT SECTOR ─╒╨╙┼├ [$4├╞8] TO ╩╧┬╙┼├ [$4┼┴6].
$├904 ├OPY CURRENT TRACK BEING DUPLICATED ├╒╥╘╥╦ [$4├╞7] TO ╩╧┬╘╥╦ [$4┼┴5].